﻿using System;
using System.Text;
namespace Kyoh.Lib.IO.Archive
{
    /// <summary>Zipファイルのファイル名のエンコード変換に使用する <see cref="System.Text.Encoding"/> を呼び出すインターフェース。</summary>
    public interface IZipEncoding : IZipConverter, IEquatable<IZipEncoding>
    {
        /// <summary>原則として使用するエンコーディングを取得します。</summary>
        Encoding Encoding { get; }
        /// <summary>ZIPファイル内のUTF8ヘッダを判定するかどうかを取得・設定します。</summary>
        bool Utf8Flag { get; }
        /// <summary>Zipエントリに使用する <see cref="System.Text.Encoding"/> を取得します。</summary>
        /// <param name="utf8Entry">エントリのUTF-8フラグがオンであるかどうかを示す <see cref="Boolean"/> 値。</param>
        /// <returns><see cref="System.Text.UTF8Encoding"/> オブジェクト、または <see cref="Encoding"/> と同一のインスタンス。</returns>
        Encoding GetUsingEncoding(bool utf8Entry);
    }
}
